/*
 * Created by 岱青海蓝信息系统(北京)有限公司 on 17-2-28 下午3:57
 * Copyright (c) 2017. All rights reserved.
 */

package com.example.dqhl.recycleviewdemo.util;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.example.dqhl.recycleviewdemo.modle.MySQliteHelper;
import com.example.dqhl.recycleviewdemo.modle.SqlModle;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by dqhl on 17/2/28.
 *
 * 主要对数据库操作的类
 */
public class DBManager {
     //单例模式

    private static MySQliteHelper mySQliteHelper;
    public static MySQliteHelper getIntance(Context context){
        if(mySQliteHelper == null){
            mySQliteHelper = new MySQliteHelper(context);
        }
        return mySQliteHelper;
    }

    /**
     *
     * 根据SQL语句在数据库中执行语句
     *
     * */
    public static void execeSQL(SQLiteDatabase db,String sql){
        if(db!= null){
            if(sql != null && !"".equals(sql)){
                db.execSQL(sql);
            }
        }
    }

    /**
     *  根据SQL语句查询返回Cursor对象
     *
     *  1/数据库对象
     *  2/sql语句
     *  3/查询条件的占位符
     *  4/返回cursor对象
     *
     * */

    public static Cursor selectDataBySql(SQLiteDatabase db,String sql,String[] selectonArgs){
        Cursor cursor = null;
        if(db != null){
            cursor = db.rawQuery(sql,selectonArgs);
        }
        return cursor;

    }
    /**
     *
     * 把Cursor转换成List对象
     * */
    public static List<SqlModle> cursorList(Cursor cursor){
        List<SqlModle> list = new ArrayList<>();
        //moveNext 返回true表示下一条记录存在,否则游标中数据读取完毕
        while (cursor.moveToNext()){
            //getColumnIndex  根据参数中制定的字段名称获取字段的下标
            int columnIndex = cursor.getColumnIndex(Constant._ID);
            //getInt 根据参数中指定字段的下标 获取对应int类型的value
            int _id = cursor.getInt(columnIndex);

            String name = cursor.getString(cursor.getColumnIndex(Constant.NAME));
            int age = cursor.getInt(cursor.getColumnIndex(Constant.AGE));

            SqlModle sqlModle = new SqlModle(_id,name,age);
            list.add(sqlModle);
        }
        return  list;
    }
}
